package com.door.erp.sevice.base;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

import com.door.erp.pager.Pager;

/**
 * Service层通用方法
 * @author yangxuelin
 */
public interface GenericService<T, PK extends Serializable> {

	public void add(T object);

	public void delete(T object);

	public void delete(PK id);

	public void modify(T object);

	public T getObject(PK id);
	
	//获取所有列表（旧方法）
	public List<T> getAll(final String hql);

	// 根据条件获取列表 （旧方法）
	public List<T> getAll(final String hql, Object... values);

	// 分页获取列表（旧方法）
	public List<T> getAll(final String hql, Object[] params,
			final Pager pager);

	// 获取记录数（旧方法）
	public int getCount(final String hql, Object... params);
	
	public List<T> getAll();
	
	public List<T> getAll(Pager pager);

	// 根据条件获取列表
	public List<T> getAll(Map<String, Object> params);

	// 分页获取列表
	public List<T> getAll(Map<String, Object> params,
			final Pager pager);

	public int getCount();
	// 获取记录数
	public int getCount(Map<String, Object> params);

	// 批量执行
	public Integer executeUpdateByQuery(final String sql, Object[] params);

}
